﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using OfertanteService.Dominio;
using ContratanteService.Dominio;

namespace OfertanteService.Persistencia
{
    public class ProductoDAO
    {

        public List<Producto> ListarProductos(string categoria)
        {
            List<Producto> productos = new List<Producto>();
            Producto productoEncontrado = null;
            string sql = "SELECT idProducto, nomProducto FROM producto where idCategoria = @categoria";
            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@categoria", categoria));
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {
                        while (resultado.Read())
                        {
                            productoEncontrado = new Producto()
                            {
                                CodProducto = (string)resultado["idProducto"],
                                NomProducto = (string)resultado["nomProducto"],
                                DesGrlProducto = "",
                                DesDetProducto = "",
                                CodCategoria = ""
                            };
                            productos.Add(productoEncontrado);
                        }
                    }
                }
            }
            return productos;
        }

        public List<Producto> ListarProductoPorOfertante(string idOfe)
        {
            List<Producto> productosEncontrados = new List<Producto>();
            string sql = " select pro.idProducto, pro.nomProducto, pro.dscGrlProducto, pro.dscDetProducto,pro.idCategoria from producto pro " +
              "inner join cartera_ofertante cat on pro.idProducto = cat.idProducto " +
              "inner join ofertante ofe on cat.idOfertante = ofe.idOfertante" +
             " where ofe.idOfertante = @idOfe";

            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();


                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@idOfe", idOfe));
                    com.ExecuteNonQuery();


                    using (SqlDataReader resultado = com.ExecuteReader())
                        while (resultado.Read())
                        {
                            Producto productoNuevo = new Producto()
                            {

                                CodProducto = (string)resultado["idProducto"],
                                NomProducto = (string)resultado["nomProducto"],
                                DesGrlProducto = (string)resultado["dscGrlProducto"],
                                DesDetProducto = (string)resultado["dscDetProducto"],
                                CodCategoria = (string)resultado["idCategoria"]

                            };
                            productosEncontrados.Add(productoNuevo);
                        }
    

                }

            }
            return productosEncontrados;
        }

    }
}